package gui;

import gui.sonido.Reproductor;
import io.ItemAgenda;
import java.awt.Color;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JLabel;

/**
 *
 * @author Mariano Zapata
 */
public class PanelWidgetAgendaControlador {
    
    private JLabel recordatorio;
    private List<ItemAgenda> eventos;
    private int indiceEventos;
    
    public PanelWidgetAgendaControlador(JLabel label)
    {
        recordatorio= label;
        eventos= new ArrayList<ItemAgenda>();
        indiceEventos= 0;
    }
    
    public void siguiente()
    {
        if (!eventos.isEmpty())
        {
            int limite= eventos.size() - 1;
            if (indiceEventos < limite)
                indiceEventos+= 1;
            else //NUNCA VA A SER MAYOR AL LÍMITE.
                indiceEventos= 0;
            ItemAgenda item= eventos.get(indiceEventos);
            recordatorio.setText(item.toStringWidget());
        }
    }
    
    public void anterior()
    {
        if (!eventos.isEmpty())
        {
            if (indiceEventos > 0)
                indiceEventos-= 1;
            else //NUNCA VA A SER MENOR A CERO.
                indiceEventos= eventos.size() - 1;
            ItemAgenda item= eventos.get(indiceEventos);
            recordatorio.setText(item.toStringWidget());
        }
    }
    
    public void actualizarProximosEventos(List<ItemAgenda> eventos)
    {
        indiceEventos= 0;
        recordatorio.setForeground(Color.black);
        this.eventos= eventos;
        if (eventos.isEmpty())
            recordatorio.setText("(ninguno)");
        else
        {
            ItemAgenda primero= eventos.get(indiceEventos);
            recordatorio.setText(primero.toStringWidget());
        }
    }
    
    public void tiempoCumplido()
    {
        recordatorio.setForeground(Color.red);
        try {
            Reproductor reproductor= new Reproductor();
            reproductor.reproducir(2);
        } catch (LineUnavailableException ex) {/*NADA. Si no se puede reproducir, no habrá sonido*/}
          catch (UnsupportedAudioFileException ex) {/*NADA. Si no se puede reproducir, no habrá sonido*/}
          catch (IOException ex) {/*NADA. Si no se puede reproducir, no habrá sonido*/}
    }
}
